import request from '../utils/Request.js';

/**
 * 账号管理API模块
 */
const accountApi = {
    /**
     * 创建账号（企业/市）
     * @param {Object} params - 请求参数
     * @param {number} params.type - 账号类型：1-企业账号 2-市账号
     * @param {Object} [params.enterpriseInfo] - 企业信息对象，type=1时必填
     * @param {number} [params.cityCode] - 市编码，type=2时必填
     * @returns {Promise} 返回创建结果
     */
    createAccount: (params) => {
        return request.post({
            url: '/account/createAccount',
            params,
        });
    },

    /**
     * 加载所有企业账号
     * @param {Object} [params] - 查询参数
     * @param {number} [params.pageNo=1] - 页码
     * @param {number} [params.pageSize=10] - 每页大小
     * @param {string} [params.username] - 用户名模糊查询
     * @param {number} [params.status] - 状态：0-正常 1-停用
     * @param {string} [params.enterpriseId] - 企业ID
     * @returns {Promise} 返回企业账号列表
     */
    loadAllEnterpriseAccount: (params = {}) => {
        // 设置默认参数
        const defaultParams = {
            pageNo: 1,
            pageSize: 10,
            ...params,
        };

        return request.get({
            url: '/account/loadAllEnterpriseAccount',
            params: defaultParams,
        });
    },

    /**
     * 加载所有市账号
     * @param {Object} [params] - 查询参数
     * @param {number} [params.pageNo=1] - 页码
     * @param {number} [params.pageSize=10] - 每页大小
     * @param {string} [params.username] - 用户名模糊查询
     * @param {number} [params.status] - 状态：0-正常 1-停用
     * @param {number} [params.cityCode] - 市编码
     * @returns {Promise} 返回市账号列表
     */
    loadAllCityAccount: (params = {}) => {
        // 设置默认参数
        const defaultParams = {
            pageNo: 1,
            pageSize: 10,
            ...params,
        };

        return request.get({
            url: '/account/loadAllCityAccount',
            params: defaultParams,
        });
    },

    /**
     * 修改账号状态
     * @param {Object} params - 请求参数
     * @param {string} params.username - 要修改状态的账号用户名
     * @param {number} params.status - 状态：0-正常 1-停用
     * @returns {Promise} 返回修改结果
     */
    changeStatus: (params) => {
        return request.post({
            url: '/account/changeStatus',
            params,
        });
    },

    autoLogin: () => {
        return request.get({
            url: '/account/autoLogin',
        });
    },

    /**
     * 条件查询账号（带企业关联信息）
     * @param {Object} params 查询参数
     */
    searchAccounts: (params) => {
        return request.post({
            url: '/account/search',
            params,
        });
    },

    /**
     * 导出账号（CSV）
     * @param {Object} params 查询参数
     */
    exportAccounts: (params) => {
        return request.download({
            url: '/account/export',
            params,
            responseType: 'blob',
        });
    },
};

export default accountApi;
